Selection of a graphical element with a cursor in a magnification window

ABSTRACT

A computer-implemented method for selecting a graphical element displayed on a touch-sensitive display. The method comprises displaying a graphical element on the touch-sensitive display; detecting a first location of a first user interaction on the touch-sensitive display; displaying a window on the display, the window comprising a pointer for selecting a graphical element; rendering in the window an area surrounding the first location of the first user interaction; detecting a second user interaction on the touch-sensitive display; detecting a move of the second user interaction on the touch-sensitive display; and moving the pointer within the window according to the move of the second user interaction.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority under 35 U.S.C. § 119 or 365 toEuropean Application No. 14307221.3, filed Dec. 31, 2014. The entireteachings of the above application(s) are incorporated herein byreference.

TECHNICAL FIELD

The invention relates generally to the technical field of computerprograms and systems, and more specifically to a method of selection ofa graphical element.

BACKGROUND

Graphical user interfaces (GUI) play an important role as regards theefficiency of the interactions between a user and a device such as forexample personal computer, laptop, music player, cell phone, personaldigital assistants. These devices execute various applications andprograms which perform functions.

Usually, the user interacts with the applications and programs throughmenus, toolbars, icons, and other graphics which are displayed on thedisplay device as GUI elements. For instance, in the field ofcomputer-aided design (CAD) techniques, a number of systems and programsare offered on the market for the design of objects (or parts) orassemblies of objects, forming a product, such as the one provided byDassault Systemes under the trademark CATIA. CAD systems allow a user toconstruct and manipulate complex three dimensional (3D) models ofobjects or assemblies of objects through the GUI.

Traditionally, operations are performed by graphical interaction with apointer operated by the user. The pointer is displayed in the GUI of thedevice, and operated via a pointing device such as a mouse, a trackball,a graphic tablet, and the like. It is also possible to perform theoperations via a peripheral input device such as physical buttons (e.g.push button) or a keyboard. More recently, touch-sensitive displays havebeen developed. They provide a new kind of interactions between the userand the device. The touch-sensitive display can detect the presence,location and the motion of an appendage on the display area; forinstance a contact of the user's finger on the display. Thetouch-sensitive display thus provides an input interface which replacesthe traditional pointing device. Furthermore, it also provides an outputinterface.

A touch-sensitive display comprises a touch-sensitive surface which isable to detect any contact or proximity interaction of the user withthis surface. Several types of touch-sensitive display technologies havebeen developed, including but not limited to, resistive, surfaceacoustic wave, infrared, and capacitive technologies. An interaction istypically provided to the touch-sensitive display via an appendage suchas a stylus, a finger . . . . The detection of the user interaction maybe performed when the appendage is directly on contact with thetouch-sensitive display—the appendage touches the display—; it may bealso performed when the appendage is at a given distance from thetouch-sensitive display—the appendage need not touch the display. Theuser interactions can therefore be performed directly on what isdisplayed to the user.

In general, a device comprising a touch-sensitive display does notcomprise anymore a pointing device and/or peripheral input device. Thiscan prevent the user from performing some operations which aretraditionally done with a pointing device and/or peripheral inputdevice. However, the precise selection of a graphical element displayedon the touch-sensitive screen can be very difficult with a finger, andeven with a stylus. In general, precise selection is difficult usingfinger/pointing device alone, because the finger or the pointer device(e.g. a stylus) creates an occlusion to the area on screen that isdirectly in contact with the appendage as well reducing the field ofvision of the user with the appendage and the holding hand that comesbetween the eyes and the display screen, and the user cannot see what iscurrently being selected. Moreover, if graphical elements to be selectedare close together, it becomes more difficult for the user to preciselyselect a particular graphical element. This is difficult partly due toinherent jitter of fingers or appendage held by hand and partly becauseof inability to control movement of touch point on screen with precisiongreater than that of finger/pointing device movement. Typically, thetouch point displacement is same as that of finger/pointing device.Another problem is that touch pointer sensitivity cannot be increased:the touch pointer movement is exactly same as finger or pointing devicemovement, which leads to the lack of accuracy of the touch pointermovement. A further problem is that the user has to zoom-in the view inorder to do precise selection, and then has to zoom-out back to originalscale to continue working; this is cumbersome operations for the user,time consuming process, and it further requires computer resources whichare limited on devices with touch-sensitive displays such as tablets.

Some solutions have been developed. However, they suffer severaldrawbacks. Mainly, the user still encounters difficulties for moving thepointer by a pixel by using touch input, for reaching to all area of thedisplay. Furthermore, it can be difficult for the user to correctly movethe pointer when the solution uses a combination of pointer offset withpointer speed reduction. Moreover, dual finger techniques increaseprecision but are not user friendly; especially with solution using dualfinger slider.

Thus, according to the limitations of the existing solutions shortlydiscussed above, there is a need for an improved method for selecting agraphical element on touch-sensitive display. Preferably, the methodshould improve the precision of the gesture, which should be intuitiveand ergonomic for the user.

SUMMARY OF THE INVENTION

The invention therefore provides a computer-implemented method forselecting a graphical element displayed on a touch-sensitive display.The method comprises displaying a graphical element on thetouch-sensitive display; detecting a first location of a first userinteraction on the touch-sensitive display; displaying a window on thedisplay, the window comprising a pointer for selecting a graphicalelement; rendering in the window an area surrounding the first locationof the first user interaction; detecting a second user interaction onthe touch-sensitive display; detecting a move of the second userinteraction on the touch-sensitive display; and moving the pointerwithin the window according to the move of the second user interaction.

The method may further comprise:

-   -   the move of the second user interaction comprises a move        direction and a move distance, and the pointer is moved with a        same move direction and with a move distance that is        proportional to the move distance of the second user        interaction;    -   the move distance of the pointer is reduced proportionally by        the application of the coefficient of reduction;    -   selecting, upon user action, the coefficient of reduction;    -   after the step of moving the pointer, the steps of detecting a        move of the first user interaction from the first location to a        second location on the touch-sensitive display; rendering in the        window the area surrounding the second location on the        touch-sensitive display;    -   rendering in the window the area surrounding the second location        on the touch-sensitive display further comprises performing, in        the window, a real-time rendering of areas surrounding        intermediate locations of the first user interaction while        moving from the first to the second location;    -   moving the window according to the move of the first user        interaction;    -   the pointer remains motionless within the window while the        window moves;    -   the second user interaction is maintained on the touch-sensitive        display;    -   the first user interaction is maintained on the touch-sensitive        display;    -   after moving the pointer, the steps of: detecting the loss of        the first and second user interactions; and selecting a        graphical element under the pointer;    -   removing the window from the touch-sensitive display;    -   the area rendered in the window is magnified or reduced based on        magnification or reduction coefficient.

It is further provided with a computer program for selecting a graphicalelement comprising instructions for causing a computer to take the stepsof the above method.

It is also provided with a computer system for selecting a graphicalelement comprising a processor communicatively coupled to a memory, anda touch-sensitive display, the memory storing the above computer.

DESCRIPTION OF THE FIGURES

A system embodying the invention will now be described, by way ofnon-limiting example, and in reference to the accompanying drawings,where:

FIG. 1 is a flowchart showing an example of the invention;

FIG. 2 is a screenshot depicting an example of the invention;

FIG. 3 is a screenshot depicting an example of the invention;

FIG. 4 is a screenshot depicting an example of the invention;

FIG. 5 is a screenshot depicting an example of the invention;

FIG. 6 is a screenshot depicting an example of the invention;

FIG. 7 is a screenshot depicting an example of the invention;

FIG. 8 shows an example of a system for performing the invention;

FIG. 9A is a screenshot depicting an example of the invention; and

FIG. 9B is a screenshot depicting an example of the invention.

DETAILED DESCRIPTION

The invention is directed to a computer-implemented method for selectionof a graphical element displayed on a touch-sensitive display. Themethod comprises a step of displaying a graphical element on thetouch-sensitive display. The method also comprises a step of detectingthe first location of the first user interaction on the touch-sensitivedisplay, e.g. the user touches the screen with a finger. The methodfurther comprises a step of displaying a window on the display. Thewindow is preferably displayed at a certain distance offset from thefirst location. The window comprises a pointer for selecting one of thegraphical elements displayed within the window. Moreover, the methodcomprises rendering in the window the area surrounding the firstlocation of the first user interaction. The method further comprisesdetecting the second user interaction on the touch-sensitive display,e.g. the user touches the screen with a second finger. Then, the methodcomprises the detection of a displacement (or move) of the second userinteraction on the touch-sensitive display, e.g. the user slides hissecond finger on the screen. The pointer displayed in the window ismoved according to the second user interaction on the touch-sensitivedisplay.

The method improves the selection of graphical element displayed on atouch-sensitive screen. The invention can be used for any graphicalelement having any size. In particular, the method of the inventionallows the user to select graphical element that has a small size whendisplayed, e.g. does not exceed a few (2 or 3) pixels in dimension.These kind of interactions are often needed in CAD product where userneeds to input precise point on screen as part of geometry constructionprocess or has to select geometry (or part of it) among other adjacentgeometries to perform some modification operation. Any kind of graphicalelement can be selected, e.g. point, line, face or the aggregate ofthese elements. The invention can be used for, e.g. select featuresamong other features forming a model . . . . The present invention usesa secondary touch to precisely move a pointer inside a window thatreproduces an area of the display surrounding the primary touch whereinthe graphical element to be selected is located. While the user movesthe secondary touch, the primary touch is held constant at the detectedlocation and the view in the window of the surrounding area (showinggraphical elements occluded by the primary touch) does not change. Onlythe pointer (which may be by default at the center of the window) moveswithin the window. This pointer (that may be a crosshair) represents atouch pointer and the element under this pointer is considered as beingselected. The selection of the graphical element is performed in awindow dedicated to that task; advantageously, the user view is no moreoccluded by its own finger. Hence, the user now has more precision inselection of the closely spaced graphical elements. Furthermore, thepointer is not offset from primary finger, thus all areas of screenremain accessible. Also, the pointer motion is proportional to thesecondary touch and not the primary touch, thus there is lesserperception of disassociation for the user. In addition, the presentinvention saves time for the user which would otherwise be spent inzooming in, selecting and zooming out. Interestingly, the inventiontakes into effect only when needed and is not obstructing the usualworkflow of the users.

The method is computer-implemented. This means that the steps (orsubstantially all the steps) of the method are executed by at least onecomputer, or any system alike. Thus, steps of the method are performedby the computer, possibly fully automatically, or, semi-automatically.In examples, the triggering of at least some of the steps of the methodmay be performed through user-computer interaction. The level ofuser-computer interaction required may depend on the level of automatismforeseen and put in balance with the need to implement the user'swishes. In examples, this level may be user-defined and/or pre-defined.

For instance, the steps of selecting the coefficient of reduction (S110)and moving the second user interaction at step S160, are triggered uponuser action.

A typical example of computer-implementation of the method is to performthe method with a system adapted for this purpose. The system maycomprise a processor coupled to a memory and a graphical user interface(GUI), the memory having recorded thereon a computer program comprisinginstructions for performing the method. The memory may also store adatabase. The memory is any hardware adapted for such storage, possiblycomprising several physically distinct parts (e.g. one for the program,and possibly one for the database).

By “database”, it is meant any collection of data (i.e. information)organized for search and retrieval. When stored on a memory, thedatabase allows a rapid search and retrieval by a computer. Databasesare indeed structured to facilitate storage, retrieval, modification,and deletion of data in conjunction with various data-processingoperations. The database may consist of a file or a set of files thatcan be broken down into records, each of which consists of one or morefields. Fields are the basic units of data storage. Users may retrievedata primarily through queries. Using keywords and sorting commands,users can rapidly search, rearrange, group, and select the field in manyrecords to retrieve or create reports on particular aggregates of dataaccording to the rules of the database management system being used.

In the present invention, the selectable graphical elements may bestored on a database.

FIG. 8 shows an example of a system for performing the method of theinvention. The system is typically a computer, e.g. a tablet. Thecomputer of FIG. 8 comprises a central processing unit (CPU) 1010connected to an internal communication BUS 1000, a random access memory(RANI) 1070 also connected to the BUS. The computer is further providedwith a graphical processing unit (GPU) 1110 which is associated with avideo random access memory 1100 connected to the BUS. Video RAM 1100 isalso known in the art as frame buffer. A mass storage device controller1020 manages accesses to a mass memory device, such as hard drive 1030.Mass memory devices suitable for tangibly embodying computer programinstructions and data include all forms of non-volatile memory,including by way of example semiconductor memory devices, such as EPROM,EEPROM, and flash memory devices; magnetic disks such as internal harddisks and removable disks; magneto-optical disks; and CD-ROM disks 1040.Any of the foregoing may be supplemented by, or incorporated in,specially designed ASICs (application-specific integrated circuits). Anetwork adapter 1050 manages accesses to a network 1060. The computermay also include a haptic device 1090 such as pointer control device(also referred to as cursor control device) or the like. A pointercontrol device is used in the computer to permit the user to selectivelyposition a pointer (also referred to as cursor) at any desired locationon the touch-sensitive display 1080. The touch-sensitive display (alsoreferred to as touch screen) is a hardware display unit attached to acomputer which responds to touch made on its front surface. It cansupport 1, 2 or multiple simultaneous touches. In addition, the pointercontrol device allows the user to select various commands, and inputcontrol signals. The pointer control device includes a number of signalgeneration devices for input control signals to system. Typically, apointer control device on a touch-sensitive display is an appendage thatmay be, but is not limited to, a finger, a stylus. In the context of atouch-sensitive display, the haptic device 1090 (a touchscreen sensorand its accompanying controller-based firmware) are integrated on thedisplay.

The present invention can be implemented by a computer program. Thecomputer program comprises instructions executable by a computer, theinstructions comprising means for causing the above system to performthe method. The program may be recordable on any data storage medium,including the memory of the system. The program may for example beimplemented in digital electronic circuitry, or in computer hardware,firmware, software, or in combinations of them. The program may beimplemented as an apparatus, for example a product tangibly embodied ina machine-readable storage device for execution by a programmableprocessor. Method steps may be performed by a programmable processorexecuting a program of instructions to perform functions of the methodby operating on input data and generating output. The processor may thusbe programmable and coupled to receive data and instructions from, andto transmit data and instructions to, a data storage system, at leastone input device, and at least one output device. The applicationprogram may be implemented in a high-level procedural or object-orientedprogramming language, or in assembly or machine language if desired. Inany case, the language may be a compiled or interpreted language. Theprogram may be a full installation program or an update program.Application of the program on the system results in any case ininstructions for performing the method.

Referring now to FIG. 1, at step S100, at least one graphical element isdisplayed on the touch-sensitive display by the system, e.g. the display1080 of FIG. 8. The display of the object is performed as known in theart. The term graphical element (also referred to as graphical componentor simply graphic) means a displayable object which may be partly ortotally selected by the user. The term object includes, but is notlimited to, an icon, a modeled object, a menu, a vertex, an edge, aface, a feature (for feature-based modeled objects), a geometry, andother graphics . . . . More generally, a graphical element is anyinformation represented on the display; for instance, an object can berepresented by a pixel that is the smallest graphical element that canbe selected. The object may be a modeled object, e.g. three-dimensionalmodeled objects modeled with a Computer-Aided Design (CAD) software.

In FIGS. 2-7, it is shown an object 10 with two graphical elements 12,14 displayed on the touch-sensitive display.

It is to be understood that the steps of the present method are carriedout on a graphical user interface (GUI) that is displayed on thetouch-sensitive display. The GUI is a graphical interface that allowsthe users to interact with a computer system. The interactions aregenerally performed with the menus and the toolbars containing a set ofuser-selectable icons, each icon being associated with one or moreoperations or functions, as known in the art. The GUI may further showvarious types of tools; for example, the GUI of a computer-aided design(CAD) system may comprise graphic tools for facilitating 3D orientationof the object, for triggering a simulation of an operation of an editedproduct or rendering various attributes of the displayed product. It isto be understood that the present invention can be carried out on anykind of GUI accepting user interactions.

Next, at step S110, a coefficient of reduction of the move distance ofthe touch pointer is selected. This pointer is displayed within a windowto be displayed as a result of the user action of step S120. Thecoefficient of reduction of the move distance of the pointer allows theuser to set the touch pointer sensitivity. This setting is stored fromone session to next. Hence, the coefficient of reduction of the movedistance may be selected upon user action for a given selection processof a graphical element, or the system can select a default value of saidcoefficient. It is to be understood that the pointer sensitivity canhave any value. It is to be understood that the coefficient of reductionis a parameter of the pointer and that a value of said parameter isselected. Any value may be associated with the coefficient of reductionof the move distance of the pointer. In practice, the user is givenoption to set pointer sensitivity in the range of 2× to 10× (bothinclusive) with increment of 1×. For instance, if the value of thecoefficient of reduction is ½, this means that the move distance of thepointer is reduced proportionality by application of this value ½: thedisplacement of the pointer is two times (2×) reduced compared to thedisplacement of the user interaction controlling the movement of thepointer.

Next, at step S120, the user performs a first user action: a first userinteraction is done on the touch-sensitive display. As a result, a firstuser location on the touch-sensitive display is detected or determined.The detection of the first location is performed as known in the art. Alocation is a position, on the touch-sensitive display, where the inputcausing the user interaction is performed. In general, thetouch-sensitive display is a two-dimensional (2D) interface between theuser and a space in which the object to select is located. The space maybe 2D or 3D space. The input causing the user interaction is thusperformed on a 2D interface toward 2D or 3D space. In 2D space, thelocation of the first user interaction may be for instance determinedaccording to a system of coordinates on the touch-sensitive display. In3D space, a 3D location of the first user interaction in the 3D spacemay be computed. The computing of this 3D location in the 3D space maybe achieved for instance by a technique of picking as known in the art;for instance ray tracing.

The user interaction is done on the graphical element that the userwants to select, or at least on the neighborhood of the graphicalelement to be selected—in the event the graphical element is too smallfor a precise selection. In practice, an appendage is in contact withthe touch-sensitive display, e.g. the finger 16 of the user presses theobject 10—more precisely the finger location is near the graphicalelement 14 of the object 10 that the user wishes to select.

A user interaction is an input provided by the user on thetouch-sensitive display. The input generates a signal which istransmitted to the computer by the touch-sensitive display. Thecomputer, e.g. personal computer, laptop, music player, cell phone,personal digital assistants, can detect any input or movement orbreaking of the input applied on it. Hence, the device has a touchsupport from Operating System (OS): in addition to hardware (touchscreen), the OS running on computer should also support touchinteractions. A program will receive touch events from OS, e.g. the GUTdisplayed on the touch-sensitive display.

The first user interaction is a so-called DOWN event on touch surface ofthe touch-sensitive display when there is no other touch event on saiddisplay. The first user interaction may be maintained on thetouch-sensitive display while the next steps are carried out.

Then, at step S130, a window is displayed on the touch-sensitivedisplay. The term window means a graphical control element comprising avisual area containing some of the graphical user interface of theprogram it belongs to. The window may be shown only after a fixed timeelapsed while the user maintains the position of the first userinteraction (typically called as HOLD event in the art).

The window comprises the pointer for which the coefficient of reductionhas been selected at step S110. The pointer is preferably displayed sothat the user can see it; this will facilitate the selection of thegraphical element. The pointer is always located inside the window, doesmove with the window, and cannot be moved outside the window. Thepointer thus always remains within the window. The pointer inside thewindow is different from any other pointer that can be displayed andused in the GUI, e.g. a cursor for launching an application.

The display of the window and the pointer is triggered upon the firstuser interaction. For instance, after the user has interacted with thedisplay as shown in FIG. 2, the window 20 and the pointer 24 aredisplayed as illustrated in FIG. 3. The window is thus a popup window:it appears and disappears based on user interaction.

Still in reference to FIG. 3, the window has a circular shape (acircular ring) and is framed by a window decoration. It is to beunderstood that any shape can be used, e.g. the window is a rectangle ora square. The window decoration may not be displayed. The pointer islocated by default on the center of the window, being understood thatthe pointer can be positioned at any location within the window whendisplayed, e.g. a position resulting from a former selection of agraphical element.

Interestingly, the window is placed on the touch-sensitive display at apredetermined position offset from the location of the first userinteraction. For instance, a predetermined direction and distance fromthe first user interaction may be used for obtaining the position of thewindow. Typically, the direction and distance are selected such that thewindow is placed in the neighborhood of the first user interaction. Forinstance, in the example of FIG. 3, the distance between the window 20and the first location of the finger 16 cannot exceed a predeterminednumber of pixel (the distance might be also a Euclidian distance) andthe window is placed on the left of the finger 16. The window is thus inthe field of vision of the user, and the hand of the finger 16 (here theright hand) does not hide the window; the user can thus see the nextoperations performed for selecting a graphical element. Thepredetermined direction and distance may be customized upon user action.For instance, if the user is left handed, he might prefer the window tobe placed on the right of the finger 16; or when the finger is near theleft/right/top/bottom edge of the display area (predetermined direction900 in FIG. 9A) the window is placed at the right/left/bottom/top of thefinger respectively (inverse predetermined direction 900' in FIG. 9B).Or when the secondary touch interaction at step S150 and step S160 isclose to the window, the window moves appropriately not to hinder withsecondary touch interaction.

Then, at step S140, an area surrounding the first location of the firstuser interaction is rendered within the window displayed at step S130.Said otherwise, a part of the content displayed around the firstlocation is reproduced (or displayed) in the window. In practice, thepredetermined area surrounding the first location has the same surfacearea that the one of the window, so that there is no magnification inthe window. Hence, the content displayed in the window is the same asthe one the window (not framed by the window decoration) would recoverif centered on the first location; for instance, the barycenter of thewindow coincides with the first location.

There may be magnification in the window; in this case, the areasurrounding the first location is reduced compared to the general casewithout magnification. The magnification coefficient (also referred toas magnification ratio) may be fixed, or it may be selected upon useraction, e.g. when the user selects the coefficient of reduction of themove distance at step S110. Magnification means that the area renderedand displayed in the window is enlarged in appearance compared to thearea displayed at step S100. Inversely, the display in the window may bereduced based on reduction coefficient (also referred to as reductionratio), e.g. selected upon user action at the step S110.

In the absence of magnification, the content displayed in the window isa copy of the content already displayed on the touch screen; theconsumption of computing resources is thus limited compared to the casewherein there is magnification.

In FIG. 3, the window 20 reproduces the content within the dotted circle26. The window 20 and the dotted circle 26 have the same diameter andthe same area. The dotted circle delimits the area surrounding the firstlocation of the first user interaction, and is centered on the firstlocation. Here the circle 26 is represented for illustration purposeonly.

Next, at step S150, a second user interaction is detected on thetouch-sensitive display. This step is performed the same way as the stepS120. In practice, an appendage is in contact with the touch-sensitivedisplay, e.g. the second finger 18 of the left hand of the user pressestouch screen as illustrated on FIG. 4. Preferably, the second userinteraction is not located on the first location and not performed onthe window.

Then, at step S160, a move of the second user interaction is detected onthe touch-sensitive display, and the pointer is moved within the windowaccording to the move of the second user interaction. The move ordisplacement of the second user interaction is typically a slide of thesecond user interaction on the touch-sensitive display. Here slidingmeans that the second user interaction is always detected (that is,continuously in contact with the touch-sensitive display) while thedisplacement is carried out.

The move of the second user action comprises a move distance and a movedirection. It may also comprise a move acceleration, as known in theart. The pointer is moved in the same move direction as the one of thesecond user interaction, as known in the art. The move distance of thepointer is proportional to the move distance of the second userinteraction. This means that the pointer may travel the same distance, alarger distance or a smaller distance than the distance traveled by thesecond user interaction. In practice, the move distance of the pointeris reduced so that the user can more easily move the pointer over thegraphical element to be selected. This allows the user to perform moreaccurate selection. To this aim, the move distance of the pointer isreduced by the use of the coefficient of reduction selected at stepS110.

FIG. 5 illustrates the step S160. The second user interaction is createdby the finger 18 sliding from a first location 260 to a second location262. The move of the second user interaction is represented by thedotted arrow 26. The pointer 24 has followed the direction of thedisplacement of the second user interaction, but it traveled on asmaller distance as the move distance of the pointer is reduced by theapplication of the coefficient of reduction previously selected. Themove of the pointer is represented by the dotted arrow 28. Hence, thecontrol of the movement of the pointer is more accurate thanks to theapplication of the coefficient of reduction on the displacement of thepointer. The dotted arrows 26 and 28 are added for the illustrationpurpose only.

The move of the pointer is performed in real-time, that is, the pointeris displaced in the same time the displacement of the second userinteraction is detected. In practice, a touch-sensitive displaycomprises a grid of touchscreen sensors forming the haptic device 1090,and the move of the second user interaction is discretized in a set oflocations, each location corresponding to a sensor activated by the userinteraction. Hence, for each activated sensor, a new location of thesecond user interaction is computed, and the pointer is moved such thatits new position reflects the new location of the second userinteraction. By this way, the pointer follows in real-time thedisplacement of the second user interaction.

At this step of the process, the user can be satisfied by the positionof the pointer: the pointer is over the graphical element he/she wantsto select. When the pointer is over a graphical element, that graphicalelement can be selected—it is in a preselected state—; it may beemphasized so that the user can easily see which graphical element amongthe displayed graphical elements can be selected. For instance, theemphasizing may be carried out thanks to the highlight of the graphicalelement. A highlight consists in applying on the representation anemissive and light colour. The emphasizing may also be performed byother visual effects such as blinking of the graphical element,thickening the outline of the emphasized graphical element, orincreasing the density of points forming the outline of the emphasizedgraphical element. By the way, any means which allows the user todistinguish the selectable graphical element among the others may beused.

The user has a second possibility to perform a preselection of agraphical element which is to use the first user interaction in order tobring the graphical element to be selected under the pointer. At thisstep of the process, the second user interaction is still detected, e.g.the finger 18 is still in contact with the touch-sensitive display.

At step S170, a move of the first user interaction is detected, the movestarting from the first location to be terminated at a second locationon the touch-sensitive display. This detection step is performed thesame way as for the detection step of the second user interaction atstep S160.

When the first user interaction is on the second location, the areasurrounding the second location on the touch-sensitive display isrendered in the window. The rendering is performed the same as discussedin reference to step S140.

Preferably, the rendering in the window is a real-time rendering ofareas surrounding the location of the first user interaction whilemoving from the first to the second location (S180). This real-timerendering is similar to real-time move of the pointer; the move of thefirst user interaction is discretized in a set of locations, eachlocation corresponding to a sensor activated by the user interaction.And for each activated sensor, a new location of the first userinteraction is computed, and the rendering of the area surrounding thenew location of the first user interaction is displayed in the window.By this way, the rendering in the window follows in real-time thedisplacement of the first user interaction.

Interestingly, the window moves according to the move of the first userinteraction, and while the first user interaction moves. This means thatthe window is positioned on the GUI the same way as discussed inreference to step S130: the window is placed on the touch-sensitivedisplay at predetermined position offset from the new location of thefirst user interaction.

Advantageously, the pointer in the window remains motionless within thewindow while the window moves and the rendering in the window isupdated; despite the second user interaction is still detected while thefirst user interaction moves. This advantageously allows the system totolerate displacements of the second user interaction that the userwould create (voluntarily or not). Hence, once the user has moved andplaced the pointer in the window, the pointer retains its position andthe user adjusts the position of the graphical element by moving thefirst user interaction until the graphical element is under the pointer.Interestingly, the user can successively move the second and first userinteractions until the pointer is over the graphical element to beselected, that is, the graphical element is in the preselected state.The user can thus use both user interactions in order to make theselection of an object. This is particularly ergonomic for the user thatmay choose to move either finger as per the ease and convenience allowedby the current configuration of the fingers on the screen to make thepre-selection.

Then, at step S190, the user selects the graphical element that is inthe preselected state. For instance, the user can stop the second userinteraction, e.g. the finger 18 is removed from the touch-sensitivedisplay (known as UP event in the art). Alternatively, the selection ofthe graphical element over which the pointer is located can be triggeredwhen the first and second user interaction are no more detected, thatis, when their loss is detected. The loss of detection means that theuser interaction has been released by the user, e.g. the user removeshis fingers 16, 18 from the touch-sensitive display. As another example,the selection can be automatically performed when the pointer stayimmobile over the graphical element for a given period of time. It is tobe understood that the selection of the graphical element may betriggered by any other way.

Once a graphical element has been selected, the user can perform afurther selection of a graphical element: (i) if the first userinteraction has been maintained by the user, by creating a new seconduser interaction and moving the already displayed pointer over a secondgraphical element already displayed in the window; (ii) if both thefirst and second user interactions have been removed, by performingagain the steps S100 to S160.

Then, at step S200, the window is removed from the touch-sensitivedisplay, that is, the window is no more displayed. The removal may beperformed immediately after that the graphical element has beenselected. The window may not be removed after selection; particularly ifselection is automatic by long hold. In practice, the window shoulddisappear only when the first user interaction is removed. Thisadvantageously allows selecting multiple elements by successive moves offirst/second user interactions without starting over from the firstinteraction for each selection.

The selected graphical element may be represented with a particularrendering so that the user can see that the graphical element isselected. This is illustrated on FIG. 7 wherein the selected graphicalelement 14 is rendered in dotted line.

The present method may be used for deselecting a graphical element. Thepointer is moved over an already selected graphical element and thedisplacement(s) of the pointer is performed according to the sameprinciples discussed in relation with FIG. 1. The selected graphicalelement is unselected, e.g. when the pointer stay immobile over theselected graphical element for a given period of time.

The preferred embodiment of the present invention has been described. Itwill be understood that various modifications may be made withoutdeparting from the spirit and scope of the invention. Therefore, otherimplementations are within the scope of the following claims. Forinstance, the first user interaction and the second user interaction areperformed by the contact on the touch-sensitive display of two fingers16, 18 and each finger belongs to one respective hand of the user.Conversely, the user may use fingers that belong to only one hand.Alternatively, two users may work together on the same GUI andcollaborate, for instance during the design process of a modeled objectthat generally requires the selection of graphical elements; the firstuser interaction may be performed by one user and the second userinteraction may be performed by the second user. The user can alsoperform successively pre-selections of the several graphical elements asdepicted in steps S100 to S160 or S100 to S190—for instance a graphicalelement is preselected when the pointer is over said graphical elementfor a given time period—, and selects all the preselected graphicalelement at once.

The invention claimed is:
 1. A computer-implemented method for selectinga graphical element of a 3D object modeled on a computer-aided design(CAD) system, the graphical element being displayed on a touch-sensitivedisplay, the method comprising: displaying the graphical element on thetouch-sensitive display; detecting a first location of a first usertouch of a user on the touch-sensitive display, the first user touchbeing on the graphical element or in a predetermined neighborhood of thegraphical element; displaying on the touch-sensitive display a window ina predetermined direction and distance offset from the first location ofthe first user touch, the predetermined direction being predeterminedbased on a dominant hand of the user, the predetermined direction beinginversed when the first location is near an edge of the touch-sensitivedisplay and the predetermined direction directs the window outside ofthe touch-sensitive display, such that the first user touch does nothide the window even if the first user touch is maintained on thetouch-sensitive display and such that the dominant hand of the user doesnot hide the window when the first location is not near an edge of thetouch-sensitive display, the window comprising a pointer for selectingthe graphical element when the pointer is over the graphical element;during the displaying, rendering in the window an area surrounding thefirst location of the first user touch and determining that thegraphical element displayed in the window is not in a preselected stateat this time; and successively performing, until the graphical elementis in the preselected state: (i) a first operation comprising: detectinga second user touch on the touch-sensitive display, detecting a move ofthe second user touch on the touch-sensitive display, and moving, withinthe window, the pointer according to the move of the second user touch;and (ii) a second operation comprising: detecting a move of the firsttouch from the first location to a second location on thetouch-sensitive display, and rendering in the window an area surroundingthe second location on the touch-sensitive display, the pointer in thewindow remaining motionless within the window while the window moves andthe touch-sensitive display in the window being updated even if adisplacement of the second touch is still detected, wherein the move ofthe first touch and the move of the second touch are slides on thetouch-sensitive display, and the graphical element is in the preselectedstate when the pointer is over the graphical element.
 2. Thecomputer-implemented method of claim 1, wherein the move of the seconduser touch comprises a move direction and a move distance, and thepointer is moved with a same move direction and with a move distancethat is proportional to the move distance of the second user touch. 3.The computer-implemented method of claim 2, wherein the move distance ofthe pointer is reduced proportionally by an application of a coefficientof reduction.
 4. The computer-implemented method of claim 3, furthercomprising: selecting, upon user action, the coefficient of reduction.5. The computer-implemented method of claim 1, wherein rendering in thewindow the area surrounding the second location on the touch-sensitivedisplay further comprises performing, in the window, a real-timerendering of areas surrounding intermediate locations of the first usertouch while moving from the first to the second location.
 6. Thecomputer-implemented method of claim 1, further comprising: moving thewindow according to the move of the first user touch.
 7. Thecomputer-implemented method of claim 1, wherein the second user touch ismaintained on the touch-sensitive display.
 8. The computer-implementedmethod of claim 1, wherein the first user touch is maintained on thetouch-sensitive display.
 9. The computer-implemented method of claim 1,further comprising after moving the pointer: detecting loss of the firstand second user touches; and selecting a graphical element under thepointer.
 10. The computer-implemented method of claim 9, furthercomprising: removing the window from the touch-sensitive display. 11.The computer-implemented method of claim 1, wherein an area rendered inthe window is magnified or reduced based on a magnification or areduction ratio.
 12. A non-transitory computer readable medium havingstored thereon a computer program comprising instructions for causing acomputer to implement the method according to claim
 1. 13. A computersystem for selecting a graphical element of a 3D object modeled on acomputer-aided design (CAD) system, the computer system comprising:processing circuitry communicatively coupled to a memory, and atouch-sensitive display, the memory storing instructions causing theprocessing circuitry to be configured to display the graphical elementon the touch-sensitive display, detect a first location of a first usertouch of a user on the touch-sensitive display, the first user touchbeing on the graphical element or in a predetermined neighborhood of thegraphical element, display on the touch-sensitive display a window in apredetermined direction and distance offset from the first location ofthe first user touch, the predetermined direction being predeterminedbased on a dominant hand of the user, the predetermined direction beinginversed when the first location is near an edge of the touch-sensitivedisplay and the predetermined direction directs the window outside ofthe touch-sensitive display, such that the first user touch does nothide the window even if the first user touch is maintained on thetouch-sensitive display and such that the dominant hand of the user doesnot hide the window when the first location is not near an edge of thedisplay, the window comprising a pointer for selecting the graphicalelement when the pointer is over the graphical element, duringdisplaying, render in the window an area surrounding the first locationof the first user touch and determine that the graphical elementdisplayed in the window is not in a preselected state at this time, andsuccessively perform, until the graphical element is in the preselectedstate: (i) a first operation comprising: detecting a second user touchon the touch-sensitive display, detecting a move of the second usertouch on the touch-sensitive display, and moving, within the window, thepointer according to the move of the second user touch, and (ii) asecond operation comprising: detecting a move of the first touch fromthe first location to a second location on the touch-sensitive display,and rendering in the window an area surrounding the second location onthe touch-sensitive display, the pointer in the window remainingmotionless within the window while the window moves and the display inthe window being updated even if a displacement of the second touch isstill detected, wherein the move of the first touch and the move of thesecond touch are slides on the touch-sensitive display, and thegraphical element is in the preselected state when the pointer is overthe graphical element.